async function fun() {
  let a = await 1;
  let b = await new Promise((resolve, reject) => {
    setTimeout(function () {
      resolve("setTimeout");
    }, 3000);
  });
  let c = await (function () {
    return "function";
  })();
  console.log(a, b, c);
  console.log("12");
}
fun(); 
//1 setTimeout function
// 12

function log(time) {
  setTimeout(function () {
    console.log(time);
    return 1;
  }, time);
}
async function fun2() {
  let a = await log(1000);
  let b = await log(3000);
  let c = log(2000);
  console.log(a);
  console.log(1);
}
fun2();
// undefined
// 1
// 1000
// 2000
// 3000